gusucode.com > 耐品图片管理系统 标准版A > 耐品图片管理系统 标准版A/Admin_Database.asp

    <!--#include file="Admin_ChkPurview.asp"-->
<%
'===============================================================
' 著作权号:中国国家版权局著作权登记号2004SR07385
' 版权所有:深圳市耐品科技开发有限公司 www.naipin.com
' 联系电话:0755-26611119 81234844 81234845
' 联系手机:13316911914
' 联系邮箱:naipin@naipin.com
'===============================================================
%>
<html>
<head>
<title>数据库备份</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%
Dim Action,ObjInstalled
Action=trim(request("Action"))
ObjInstalled=Netout.ObjectInstalled("Scripting.FileSystemObject")
Behind.WriteHtmlHead
Title="数 据 库 管 理"
Link="<a href='Admin_Database.asp?Action=Backup' class='black'>备份数据库</a> | <a href='Admin_Database.asp?Action=Restore' class='black'>恢复数据库</a> "&_ 
     "| <a href='Admin_Database.asp?Action=Compact' class='black'>压缩数据库</a> | "&_
     "<a href='Admin_Database.asp?Action=Init' class='black'>系统初始化</a> | <a href='Admin_Database.asp?Action=DataSize' class='black'>系统空间占用情况</a>"
Behind.WriteHtmlTop Title,Link
Select Case Action
Case "Backup","BackupData"
	Call ShowBackup()
Case "Compact","CompactData"
	Call ShowCompact()
Case "Restore","RestoreData"
	Call ShowRestore()
Case "Init","Clear"
	Call ShowInit()
Case "DataSize"
	Call ShowDataSize()
Case Else
	FoundErr = True
	ErrMsg = ErrMsg & "<br><li>错误参数!</li>"
End Select
IF FoundErr = True Then
	Behind.WriteErrMsg(ErrMsg)
End IF

Sub ShowBackup()
%>
<form method="post" action="Admin_Database.asp?action=BackupData">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="border">
  <tr> 
      <td align="center" valign="middle" class="tdbg1" style="border-bottom: 1 solid #999999"><b>备 份 数 据 库</b></td>
  </tr>
  <tr class="tdbg"> 
    <td height="150" align="center" valign="middle">
		<%    
		IF Request("action")="BackupData" Then
			Call backupdata()
		Else
		%>
        <table cellpadding="3" cellspacing="1" border="0" width="100%">
          <tr> 
            <td width="200" height="33" align="right">备份目录:</td>
            <td><input type=text size=20 name=bkfolder value=Databackup></td>
            <td>相对路径目录,如目录不存在,将自动创建</td>
          </tr>
          <tr> 
            <td width="200" height="34" align="right">备份名称:</td>
            <td height="34"><input type=text size=20 name=bkDBname></td>
            <td height="34">如有同名文件,将覆盖</td>
          </tr>
          <tr align="center"> 
            <td height="40" colspan="3"><input name="submit" type=submit value=" 开始备份 " <%If ObjInstalled=false Then response.Write "disabled"%>></td>
          </tr>
        </table>
		<%
			If ObjInstalled=false Then
				Response.Write "<b><font color=red>您的服务器不支持 FSO(Scripting.FileSystemObject)! 不能使用本功能</font></b>"
			End IF
		End IF
		%>
    </td>
 </tr>
</table>
</form>
<%
End Sub

sub ShowCompact()
%>
<form method="post" action="Admin_Database.asp?action=CompactData">
<table class="border" width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
	<tr class="title"> 
      <td align="center" valign="middle" class="tdbg1" style="border-bottom: 1 solid #999999"><b>数据库在线压缩</b></td>
	</tr>
	<tr class="tdbg">
		<td align="center" height="150" valign="middle"> 
			<%    
			if request("action")="CompactData" then
				Call CompactData()
			Else
			%>
			  <br>
			  <br>
			  <br>
				数据库路径:<input name="strdbpath" type=text id="strdbpath" value="DataBackup/" size=50 maxlength="200"><br>
			  <br>
			<input name="submit" type=submit value=" 压缩数据库 " <%If ObjInstalled=false Then response.Write "disabled"%>>
				<br>
				<br>
			<%
				If ObjInstalled=false Then
					Response.Write "<b><font color=red>您的服务器不支持 FSO(Scripting.FileSystemObject)! 不能使用本功能</font></b>"
				End IF
			End IF
			%>
		</td>
	  </tr>
	</table>
</form>
<%
end sub

sub ShowRestore()
%>
<form method="post" action="Admin_Database.asp?action=RestoreData">
	<table width="100%" class="border" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr class="title"> 
      		
      <td align="center" valign="middle" class="tdbg1" style="border-bottom: 1 solid #999999"><b>数据库恢复</b></td>
        </tr>
        <tr class="tdbg">
            <td align="center" height="150" valign="middle"> 
			<%
			if request("action")="RestoreData" then
				call RestoreData()
			else
			%>
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr> 
            <td width="200" height="30" align="right">备份数据库路径(相对):</td>
            <td height="30"><input name=backpath type=text id="backpath" value="DataBackup/" size=50 maxlength="200"></td>
          </tr>
          <tr align="center"> 
            <td height="40" colspan="2"><input name="submit" type=submit value=" 恢复数据 " <%If ObjInstalled=false Then response.Write "disabled"%>></td>
          </tr>
        </table>
			<%
				If ObjInstalled=false Then
					Response.Write "<b><font color=red>您的服务器不支持 FSO(Scripting.FileSystemObject)! 不能使用本功能</font></b>"
				end if
			end if
			%>
            </td>
        </tr>
  </table>
</form>
<%
end sub

sub ShowInit()
%>
<form action="Admin_Database.asp" method="post" name="form1" id="form1" onSubmit="return confirm('确实要清除选定的表吗?一旦清除将无法恢复!');">
  <table class="border" width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr class="title"> 
      <td align="center" valign="middle" class="tdbg1" style="border-bottom: 1 solid #999999"><b>系 统 初 始 化</b></td>
    </tr>
    <tr class="tdbg"> 
      <td width="100%" height="150" align=center valign="middle">
		<%
		if Action="Clear" then
			call ClearData()
		else
		%>
        <b><br>
        <font color="#FF0000">请慎用此功能,使用之前先备份数据库,因为一旦清除将无法恢复!<br>
        清空后的图片文件将永远不能恢复!</font>
        <br>
        <br>
        将选择您要清空的数据库:<br>
        <br>
        </b> 
        <table border="0" cellpadding="0" cellspacing="5">
          <tr> 
            <td><input name="Class" type="checkbox" id="Class" value="1" onClick="javascript:Title.checked=Title.disabled=this.checked;Comment.checked=Comment.disabled=this.checked;">图片分类</td>
          </tr>
          <tr> 
            <td><input name="Special" type="checkbox" id="Special" value="1">图片专题</td>
          </tr>
          <tr> 
            <td><input name="Title" type="checkbox" id="Title" value="1" onClick="javascript:Comment.checked=Comment.disabled=this.checked;">所有图片</td>
          </tr>
          <tr> 
            <td><input name="Comment" type="checkbox" id="Comment" value="1">所有评论</td>
          </tr>
          <tr> 
            <td><input name="Announce" type="checkbox" id="Announce" value="1">公  告</td>
          </tr>
          <tr> 
            <td><input name="FriendSite" type="checkbox" id="FriendSite" value="1">友情链接</td>
          </tr>
          <tr> 
            <td height="40" align="center"><input name="Action" type="hidden" id="Action" value="Clear"><input type="submit" name="Submit" value="清除数据"></td>
          </tr>
        </table>
		<%
		end if
		%>
      </td>
    </tr>
  </table>
</form>
<%
end sub

sub ShowDataSize()
	set fso=server.createobject("scripting.filesystemobject")%>
<table class="border" width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
	<tr class="title"> 
		<td align="center" valign="middle" class="tdbg1" style="border-bottom: 1 solid #999999"><b>系统空间占用情况</b></td>
	</tr>
    <tr class="tdbg"> 
		<td width="100%" align=center valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td align="right">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr> 
          <td align="right">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <%
		Length = Cstr(Round(Netout.GetFolderSize(".")/1024/1024,1))
		If Left(Length,1) = "." Then Length = "0"&Length
		%>
        <tr> 
          <td align="right">您目前已经使用了:</td>
          <td><IMG height=10 src="images/bar1.gif" width="<%=Length*400/Config.Settings(26)%>"><%=Length%> MB</td>
        </tr>
        <tr> 
          <td align="right">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <%
		ImageUsed=Netout.GetFolderSize(Config.ImagePath(0))+Netout.GetfolderSize(Config.ImagePath(1))+Netout.GetFolderSize(Config.ImagePath(2))
		Length = Cstr(Round(ImageUsed/1024/1024,1))
		If Left(Length,1) = "." Then Length = "0"&Length
		%>
        <tr> 
          <td width="23%" align="right">其中上传图片占用:</td>
          <td><IMG height=10 src="images/bar1.gif" width="<%=Length*400/Config.Settings(26)%>"><%=Length%> MB</td>
        </tr>
        <tr> 
          <td align="right">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr> 
          <td align="right">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
		<%set fso=nothing%>
      </table></td>
	</tr>
</table>
<%
End sub

sub BackupData()
	dim bkfolder,bkdbname,fso
	bkfolder=trim(request("bkfolder"))
	bkdbname=trim(request("bkdbname"))
	if bkfolder="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>请指定备份目录!</li>"
	end if
	if bkdbname="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>请指定备份文件名</li>"
	end if
	if FoundErr=True then exit sub
	bkfolder=server.MapPath(bkfolder)
	Set Fso=server.createobject("scripting.filesystemobject")
	if fso.FileExists(datafile) then
		If fso.FolderExists(bkfolder)=false Then
			fso.CreateFolder(bkfolder)
		end if
		fso.copyfile datafile,bkfolder & "\" & bkdbname 
		response.write "<center>备份数据库成功,备份的数据库为 " & bkfolder & "\" & bkdbname & "</center>"
	Else
		response.write "<center>找不到源数据库文件,请检查inc/conn.asp中的配置。</center>"
	End if
end sub

sub CompactData()
	Dim fso, Engine, strdatafile,tempDb
	strdbPath = Trim(Request.Form("strdbpath"))
	strdbPath = Server.MapPath(strdbpath)
	tempDb = Left(strdbPath,InStrRev(strdbPath,"\")-1) & "temp.mdb"
	Set fso = Server.CreateObject("Scripting.FileSystemObject")
	If fso.FileExists(strdbPath) Then
		Set Engine = CreateObject("JRO.JetEngine")
		Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strdbPath, _
		"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & tempDb
		
		fso.CopyFile tempDb,strdbPath
		fso.DeleteFile(tempDb)
		Set fso = nothing
		Set Engine = nothing
		response.write "数据库压缩成功!"
	Else
		response.write "数据库没有找到!"
	End If
end sub

Sub RestoreData()
	Dim backpath,fso
	backpath = Trim(Request.Form("backpath"))
	backpath = Server.Mappath(backpath)
	IF backpath="" Then
		FoundErr = True
		ErrMsg = ErrMsg & "<br><li>请指定原备份的数据库文件名!<li>"
		Exit Sub
	End IF
	Set Fso = Server.Createobject("Scripting.FileSystemObject")
	IF Fso.FileExists(backpath) Then
		Fso.CopyFile backpath,datafile
		Response.Write "成功恢复数据!"
	Else
		Response.Write "找不到指定的备份文件!"	
	End IF
End Sub

Sub ClearData()
	Dim z:z=0
	IF Request.Form("Class")="1" Then
		Conn.Execute("Delete from NT_ClassName")
		Conn.Execute("Delete from Nt_Remark Where ImageId In(select id from Nt_ImgBook)")
		Conn.Execute("Delete from Nt_Remark Where titleID In(select titleID from Nt_Title)")
		Conn.Execute("Delete from Nt_Title")
		Conn.Execute("Delete from Nt_ImgBook")
		z = z+1
	End IF
	If Request.form("Special")="1" Then
		Conn.Execute("update Nt_title set specialId=0")
		Conn.Execute("Delete from Nt_special")
		z = z+1
	End If
	IF Request.Form("Title")="1" Then
		Conn.Execute("Delete from Nt_Remark Where ImageId In(select id from Nt_ImgBook)")
		Conn.Execute("Delete from Nt_Remark Where titleID In(select titleID from Nt_Title)")
		Conn.Execute("Delete from Nt_Title")
		Conn.Execute("Delete from Nt_ImgBook")
		z = z+1
	End IF
	IF Request.Form("Comment")="1" Then
		Conn.Execute("Delete from Nt_Remark")
		z = z+1
	End IF
	IF Request.Form("Announce")="1" Then
		Conn.Execute("Delete from NT_Announce")
		z = z+1
	End IF
	IF Request.Form("FriendSite")="1" Then
		Conn.Execute("Delete from NT_FriendSite")
		z = z+1
	End IF
	IF z>0 Then
		Response.Write CStr(z) & "个数据库被清空,您可以开始添加新内容。"
	Else
		Response.Write "您没有选择任何数据库,0个数据库被清空。"
	End IF
	IF Request.Form("Class")="1" or Request.Form("Title")="1" Then
		Call DelFolder(Server.MapPath(Config.ImagePath(0)))
		Call DelFolder(Server.MapPath(Config.ImagePath(1)))
		Call DelFolder(Server.MapPath(Config.ImagePath(2)))
		Netout.SendData "DelData.asp?Action=Clear",Config.SystemUrl
	End IF
	If Request.form("ArtClass")="1" Or Request.Form("Diary")="1" Then
		Call DelFolder(Server.MapPath("UploadFile/Article"))
	End If
End Sub

Sub DelFolder(FolderName)
	'On Error Resume Next
	Set MyFile = Server.CreateObject("Scripting.FileSystemObject")
	IF MyFile.FolderExists(FolderName) Then
		MyFile.DeleteFolder FolderName
		MyFile.CreateFolder FolderName
	Else
		MyFile.CreateFolder FolderName
	End IF
	Set MyFile = Nothing
End Sub

Behind.WriteHtmlEnd
set Netout=nothing
%>